FHIR © HL7.org  |  FHIRsmith 4.0.1  |  Server Home  |  XIG Home  |  XIG Stats  | 

FHIR IG analytics

Packagehl7.fhir.uv.omop
Resource TypeStructureDefinition
IdStructureDefinition-VisitDetail.json
FHIR VersionR5
Sourcehttps://build.fhir.org/ig/HL7/fhir-omop-ig/StructureDefinition-VisitDetail.html
URLhttp://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail
Version1.0.0
Statusactive
Date2026-04-02T22:51:15+00:00
NameVisitDetail
TitleVisit Detail OMOP Table
Realmuv
Authorityhl7
DescriptionThe VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain.
Typehttp://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail
Kindlogical

Resources that use this resource

No resources found


Resources that this resource uses

No resources found


Narrative

Note: links and images are rebased to the (stated) source

Generated Narrative: StructureDefinition VisitDetail

Language: en

NameFlagsCard.TypeDescription & Constraintsdoco
.. VisitDetail 0..*BaseVisit Detail OMOP Table
Instances of this logical model can be the target of a Reference
... visit_detail_id 1..1integerVisit Detail Identifier
... person_id 1..1integerPerson
... visit_detail_concept_id 1..1codeVisit Detail
... visit_detail_start_date 1..1dateVisit Detail Start Date
... visit_detail_start_datetime 0..1dateTimeVisit Detail Start Datetime
... visit_detail_end_date 1..1dateVisit Detail End Date
... visit_detail_end_datetime 0..1dateTimeVisit Detail End Datetime
... visit_detail_type_concept_id 1..1codeVisit Detail Type
... provider_id 0..1integerProvider
... care_site_id 0..1integerCare Site
... visit_detail_source_value 0..1stringVisit Detail Source Value
... visit_detail_source_concept_id 0..1codeVisit Detail Source Concept
... admitted_from_concept_id 0..1codeAdmitted From
... admitted_from_source_value 0..1stringAdmitted From Source Value
... discharged_to_source_value 0..1stringDischarged To Source Value
... discharged_to_concept_id 0..1codeDischarged To
... preceding_visit_detail_id 0..1integerPreceding Visit
... parent_visit_detail_id 0..1integerParent Visit
... visit_occurrence_id 1..1integerVisit Occurrence

doco Documentation for this format

Source1

{
  "resourceType": "StructureDefinition",
  "id": "VisitDetail",
  "language": "en",
  "text": {
    "status": "extensions",
    "div": "<!-- snip (see above) -->"
  },
  "extension": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics",
      "valueCode": "can-be-target"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
      "valueCode": "brr"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
      "valueInteger": 1,
      "_valueInteger": {
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
            "valueCanonical": "http://hl7.org/fhir/uv/omop/ImplementationGuide/hl7.fhir.uv.omop"
          }
        ]
      }
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
      "valueCode": "informative",
      "_valueCode": {
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom",
            "valueCanonical": "http://hl7.org/fhir/uv/omop/ImplementationGuide/hl7.fhir.uv.omop"
          }
        ]
      }
    }
  ],
  "url": "http://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail",
  "version": "1.0.0",
  "name": "VisitDetail",
  "title": "Visit Detail OMOP Table",
  "status": "active",
  "date": "2026-04-02T22:51:15+00:00",
  "publisher": "HL7 International / Biomedical Research and Regulation",
  "contact": [
    {
      "name": "HL7 International / Biomedical Research and Regulation",
      "telecom": [
        {
          "system": "url",
          "value": "http://www.hl7.org/Special/committees/rcrim"
        }
      ]
    }
  ],
  "description": "The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain.",
  "jurisdiction": [
    {
      "coding": [
        {
          "system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code": "001",
          "display": "World"
        }
      ]
    }
  ],
  "fhirVersion": "5.0.0",
  "mapping": [
    {
      "identity": "rim",
      "uri": "http://hl7.org/v3",
      "name": "RIM Mapping"
    }
  ],
  "kind": "logical",
  "abstract": false,
  "type": "http://hl7.org/fhir/uv/omop/StructureDefinition/VisitDetail",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Base",
  "derivation": "specialization",
  "snapshot": {
    "extension": [
      {
        "url": "http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version",
        "valueString": "5.0.0"
      }
    ],
    "element": [
      {
        "id": "VisitDetail",
        "path": "VisitDetail",
        "short": "Visit Detail OMOP Table",
        "definition": "The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain.",
        "min": 0,
        "max": "*",
        "base": {
          "path": "Base",
          "min": 0,
          "max": "*"
        },
        "isModifier": false,
        "mapping": [
          {
            "identity": "rim",
            "map": "n/a"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-id",
        "path": "VisitDetail.visit_detail_id",
        "short": "Visit Detail Identifier",
        "definition": "Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "VisitDetail.visit_detail_id",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "VisitDetail.person-id",
        "path": "VisitDetail.person_id",
        "short": "Person",
        "definition": "Person",
        "min": 1,
        "max": "1",
        "base": {
          "path": "VisitDetail.person_id",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-concept-id",
        "path": "VisitDetail.visit_detail_concept_id",
        "short": "Visit Detail",
        "definition": "This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "VisitDetail.visit_detail_concept_id",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-start-date",
        "path": "VisitDetail.visit_detail_start_date",
        "short": "Visit Detail Start Date",
        "definition": "This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "VisitDetail.visit_detail_start_date",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "date"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-start-datetime",
        "path": "VisitDetail.visit_detail_start_datetime",
        "short": "Visit Detail Start Datetime",
        "definition": "Visit Detail Start Datetime",
        "min": 0,
        "max": "1",
        "base": {
          "path": "VisitDetail.visit_detail_start_datetime",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "dateTime"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-end-date",
        "path": "VisitDetail.visit_detail_end_date",
        "short": "Visit Detail End Date",
        "definition": "This the end date of the patient-provider interaction.  If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_date, then set the visit_end_date to the date of the data pull.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "VisitDetail.visit_detail_end_date",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "date"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-end-datetime",
        "path": "VisitDetail.visit_detail_end_datetime",
        "short": "Visit Detail End Datetime",
        "definition": "If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_datetime, then set the visit_end_datetime to the datetime of the data pull.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "VisitDetail.visit_detail_end_datetime",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "dateTime"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-type-concept-id",
        "path": "VisitDetail.visit_detail_type_concept_id",
        "short": "Visit Detail Type",
        "definition": "Use this field to understand the provenance of the visit detail record, or where the record comes from.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "VisitDetail.visit_detail_type_concept_id",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ]
      },
      {
        "id": "VisitDetail.provider-id",
        "path": "VisitDetail.provider_id",
        "short": "Provider",
        "definition": "There will only be one provider per  **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "VisitDetail.provider_id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "VisitDetail.care-site-id",
        "path": "VisitDetail.care_site_id",
        "short": "Care Site",
        "definition": "This field provides information about the Care Site where the Visit Detail took place.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "VisitDetail.care_site_id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-source-value",
        "path": "VisitDetail.visit_detail_source_value",
        "short": "Visit Detail Source Value",
        "definition": "This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.)",
        "min": 0,
        "max": "1",
        "base": {
          "path": "VisitDetail.visit_detail_source_value",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-source-concept-id",
        "path": "VisitDetail.visit_detail_source_concept_id",
        "short": "Visit Detail Source Concept",
        "definition": "Visit Detail Source Concept",
        "min": 0,
        "max": "1",
        "base": {
          "path": "VisitDetail.visit_detail_source_concept_id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ]
      },
      {
        "id": "VisitDetail.admitted-from-concept-id",
        "path": "VisitDetail.admitted_from_concept_id",
        "short": "Admitted From",
        "definition": "Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "VisitDetail.admitted_from_concept_id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ]
      },
      {
        "id": "VisitDetail.admitted-from-source-value",
        "path": "VisitDetail.admitted_from_source_value",
        "short": "Admitted From Source Value",
        "definition": "Admitted From Source Value",
        "min": 0,
        "max": "1",
        "base": {
          "path": "VisitDetail.admitted_from_source_value",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "VisitDetail.discharged-to-source-value",
        "path": "VisitDetail.discharged_to_source_value",
        "short": "Discharged To Source Value",
        "definition": "Discharged To Source Value",
        "min": 0,
        "max": "1",
        "base": {
          "path": "VisitDetail.discharged_to_source_value",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "VisitDetail.discharged-to-concept-id",
        "path": "VisitDetail.discharged_to_concept_id",
        "short": "Discharged To",
        "definition": "Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was transferred to another hospital or sent to a long-term care facility, for example.  It is assumed that a person is discharged to home therefore there is not a standard concept id for \"home\".  Use concept id = 0 when a person is discharged to home.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "VisitDetail.discharged_to_concept_id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "code"
          }
        ]
      },
      {
        "id": "VisitDetail.preceding-visit-detail-id",
        "path": "VisitDetail.preceding_visit_detail_id",
        "short": "Preceding Visit",
        "definition": "Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "VisitDetail.preceding_visit_detail_id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "VisitDetail.parent-visit-detail-id",
        "path": "VisitDetail.parent_visit_detail_id",
        "short": "Parent Visit",
        "definition": "Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship.",
        "min": 0,
        "max": "1",
        "base": {
          "path": "VisitDetail.parent_visit_detail_id",
          "min": 0,
          "max": "1"
        },
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-occurrence-id",
        "path": "VisitDetail.visit_occurrence_id",
        "short": "Visit Occurrence",
        "definition": "Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE.",
        "min": 1,
        "max": "1",
        "base": {
          "path": "VisitDetail.visit_occurrence_id",
          "min": 1,
          "max": "1"
        },
        "type": [
          {
            "code": "integer"
          }
        ]
      }
    ]
  },
  "differential": {
    "element": [
      {
        "id": "VisitDetail",
        "path": "VisitDetail",
        "short": "Visit Detail OMOP Table",
        "definition": "The VISIT_DETAIL table is an optional table used to represents details of each record in the parent VISIT_OCCURRENCE table. A good example of this would be the movement between units in a hospital during an inpatient stay or claim lines associated with a one insurance claim. For every record in the VISIT_OCCURRENCE table there may be 0 or more records in the VISIT_DETAIL table with a 1:n relationship where n may be 0. The VISIT_DETAIL table is structurally very similar to VISIT_OCCURRENCE table and belongs to the visit domain."
      },
      {
        "id": "VisitDetail.visit-detail-id",
        "path": "VisitDetail.visit_detail_id",
        "short": "Visit Detail Identifier",
        "definition": "Use this to identify unique interactions between a person and the health care system. This identifier links across the other CDM event tables to associate events with a visit detail.",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "VisitDetail.person-id",
        "path": "VisitDetail.person_id",
        "short": "Person",
        "definition": "Person",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-concept-id",
        "path": "VisitDetail.visit_detail_concept_id",
        "short": "Visit Detail",
        "definition": "This field contains a concept id representing the kind of visit detail, like inpatient or outpatient. All concepts in this field should be standard and belong to the Visit domain.",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-start-date",
        "path": "VisitDetail.visit_detail_start_date",
        "short": "Visit Detail Start Date",
        "definition": "This is the date of the start of the encounter. This may or may not be equal to the date of the Visit the Visit Detail is associated with.",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "date"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-start-datetime",
        "path": "VisitDetail.visit_detail_start_datetime",
        "short": "Visit Detail Start Datetime",
        "definition": "Visit Detail Start Datetime",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "dateTime"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-end-date",
        "path": "VisitDetail.visit_detail_end_date",
        "short": "Visit Detail End Date",
        "definition": "This the end date of the patient-provider interaction.  If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_date, then set the visit_end_date to the date of the data pull.",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "date"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-end-datetime",
        "path": "VisitDetail.visit_detail_end_datetime",
        "short": "Visit Detail End Datetime",
        "definition": "If a Person is still an inpatient in the hospital at the time of the data extract and does not have a visit_end_datetime, then set the visit_end_datetime to the datetime of the data pull.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "dateTime"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-type-concept-id",
        "path": "VisitDetail.visit_detail_type_concept_id",
        "short": "Visit Detail Type",
        "definition": "Use this field to understand the provenance of the visit detail record, or where the record comes from.",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ]
      },
      {
        "id": "VisitDetail.provider-id",
        "path": "VisitDetail.provider_id",
        "short": "Provider",
        "definition": "There will only be one provider per  **visit** record and the ETL document should clearly state how they were chosen (attending, admitting, etc.). This is a typical reason for leveraging the VISIT_DETAIL table as even though each VISIT_DETAIL record can only have one provider, there is no limit to the number of VISIT_DETAIL records that can be associated to a VISIT_OCCURRENCE record.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "VisitDetail.care-site-id",
        "path": "VisitDetail.care_site_id",
        "short": "Care Site",
        "definition": "This field provides information about the Care Site where the Visit Detail took place.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-source-value",
        "path": "VisitDetail.visit_detail_source_value",
        "short": "Visit Detail Source Value",
        "definition": "This field houses the verbatim value from the source data representing the kind of visit detail that took place (inpatient, outpatient, emergency, etc.)",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-detail-source-concept-id",
        "path": "VisitDetail.visit_detail_source_concept_id",
        "short": "Visit Detail Source Concept",
        "definition": "Visit Detail Source Concept",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ]
      },
      {
        "id": "VisitDetail.admitted-from-concept-id",
        "path": "VisitDetail.admitted_from_concept_id",
        "short": "Admitted From",
        "definition": "Use this field to determine where the patient was admitted from. This concept is part of the visit domain and can indicate if a patient was admitted to the hospital from a long-term care facility, for example.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ]
      },
      {
        "id": "VisitDetail.admitted-from-source-value",
        "path": "VisitDetail.admitted_from_source_value",
        "short": "Admitted From Source Value",
        "definition": "Admitted From Source Value",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "VisitDetail.discharged-to-source-value",
        "path": "VisitDetail.discharged_to_source_value",
        "short": "Discharged To Source Value",
        "definition": "Discharged To Source Value",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "VisitDetail.discharged-to-concept-id",
        "path": "VisitDetail.discharged_to_concept_id",
        "short": "Discharged To",
        "definition": "Use this field to determine where the patient was discharged to after a visit. This concept is part of the visit domain and can indicate if a patient was transferred to another hospital or sent to a long-term care facility, for example.  It is assumed that a person is discharged to home therefore there is not a standard concept id for \"home\".  Use concept id = 0 when a person is discharged to home.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "code"
          }
        ]
      },
      {
        "id": "VisitDetail.preceding-visit-detail-id",
        "path": "VisitDetail.preceding_visit_detail_id",
        "short": "Preceding Visit",
        "definition": "Use this field to find the visit detail that occurred for the person prior to the given visit detail record. There could be a few days or a few years in between.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "VisitDetail.parent-visit-detail-id",
        "path": "VisitDetail.parent_visit_detail_id",
        "short": "Parent Visit",
        "definition": "Use this field to find the visit detail that subsumes the given visit detail record. This is used in the case that a visit detail record needs to be nested beyond the VISIT_OCCURRENCE/VISIT_DETAIL relationship.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "integer"
          }
        ]
      },
      {
        "id": "VisitDetail.visit-occurrence-id",
        "path": "VisitDetail.visit_occurrence_id",
        "short": "Visit Occurrence",
        "definition": "Use this field to link the VISIT_DETAIL record to its VISIT_OCCURRENCE.",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "integer"
          }
        ]
      }
    ]
  }
}